1. Technical Field
A “Remote Display Generator,” provides various techniques for implementing remote computing platforms that provide clients remote access to various applications, and in particular, various techniques for providing high-fidelity displays with highly responsive interactive application experiences to clients across a wide range of network bandwidths for remotely hosted applications.
2. Related Art
Rapid development of the network bandwidth provides opportunities for users to utilize remote computing resources for a number of purposes. For example, portable or network attached devices can be used to access and interact with applications with heavy resource requirements that are hosted by powerful machines at remote sites. In addition, wide network bandwidths and pervasive computing environments are useful for the deployment of the Software as a Service (SaaS) model. In the SaaS model of software consumption, the software is provided to consumers as a service across the Internet or other network and the applications are hosted by remote servers. Consequently, at the client side, users can eliminate software installation and maintenance, and use thin-client computing platforms to access the software services provided by remote servers.
More specifically, typical remote computing platforms decouple the application logic from the user interface, and enable clients to utilize the computation resources from one or more remote servers. In the development of these types of remote computing systems, a number of factors are generally considered, including for example, richness of the user experience, bandwidth consumption, and cross platform adaptation.
For example with respect to overall user experience, users of remote computing platforms expect (or demand) high-fidelity displays and an interactive experience that operates in the same manner as if the users were accessing those same applications running on the local machines.
Overall application performance that is acceptable to the user is required not only in LAN environments (where high bandwidth is generally readily available) but also in bandwidth-constrained WAN environments. Unfortunately, complicated graphical interfaces and multimedia applications often produce difficult technical challenges for developers in achieving effective transmissions with low-bandwidth links.
Finally, as technology becomes more pervasive in the everyday environment, more and more consumer electronic devices such as laptops, smart phones, media players, home appliances, etc., can easily access the Internet. Such devices may be quite different in terms of access bandwidth and operating systems. Consequently, another challenge facing developers of these devices and associated applications is to make such devices operate in a manner that is acceptable to users of remote applications, especially in the case of multimedia applications where video quality is often a primary concern of the user.
Towards addressing such issues, a number of thin-client computing platforms have been developed in the past. In general, these existing systems can be classified into two categories according to the mechanisms of representing the display information.
For example, the first category of remote computing systems typically uses high-level commands to represent the screen update, such as, for example, an application known as “X System”, and Microsoft® Remote Desktop Protocol (RDP). These methods are efficient in representing the display of the graphical user interface (GUI). However, such systems tend to suffers from performance degradation, especially when representing display-intensive multimedia applications (e.g., video playback). In addition, the interpretation of high-level commands depends heavily on the operating systems. Consequently, it is a difficult to develop applications for servers and clients on different operating systems having different display rendering mechanisms.
The second category of remote computing systems generally utilizes low-level approaches to represent the screen of remote servers, including the well-known VNC and THINC type systems. VNC-based systems generally operate by directly reading pixels from the framebuffer of the server, and then compressing these pixels for transmission to the client. Well-known encoding schemes for pixel compression with such systems include the ZRLE method and the Tight encoding method. However, such methods are not generally effective for compressing display screens having high spectral contents. For example, the THINC system intercepts graphics calls of the server and maps them to low-level simple commands. However, this system lacks efficient compression mechanisms for display-intensive applications such as video playback.